why interface methods are public and abstract